package active;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * @author 陈华旺
 * @version 1.0
 * @date 2023年11月23日 14:41
 * @Description TODO
 */
@WebServlet("/test16")
public class Test16Session extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        session 会话 - 描述一个客户端在服务器进行请求操作的状态功能
//        session 会话 是服务器提供的一种用户状态描述技术，
//              java 程序中 对每一个客户端在服务器访问时，都会存在一个与该客户段对应的session对象
//              session 实际上就是服务器对每个客户段分配一个独立存储空间
//              每个seesion对象都会与之对应一个固定 jsessionid 值
//              并且该 jsessionid 值会在每次 客户端请求，服务器响应时被携带
//                  + 首次访问 java 会自动分配jsessionid，并返回给浏览器
//                  + 浏览器会存储该id，并且在后续的请求携带该id，用户服务器的session关联
//         session 可以在同一个客户端的多个请求中共享数据
        HttpSession session = req.getSession();
        double num = Math.random();
//        通过 session 的 setAttribute 方法可以存储数据
        session.setAttribute("num",num);
        System.out.println("session:"+session);
        System.out.println("num:"+num);
        resp.getWriter().println("session:"+session);
        resp.getWriter().println("num:"+num);
    }
}







